<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: Breakpoints</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Breakpoints<div class="ingroups"><a class="el" href="group__dbg__funcs.html">Debugger functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Work with debugger breakpoints. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group___b_p_t_c_k__"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_p_t_c_k__.html">Breakpoint status codes</a></td></tr>
<tr class="memdesc:group___b_p_t_c_k__"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return values for <a class="el" href="group__dbg__funcs__bpts.html#ga202cfe07a3d9d3afe387aa637721e83a" title="Check the breakpoint at the specified address. ">check_bpt()</a> <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group___b_v_f__"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_v_f__.html">Breakpoint visitor flags</a></td></tr>
<tr class="memdesc:group___b_v_f__"><td class="mdescLeft">&#160;</td><td class="mdescRight">Passed as 'bvflags' parameter to <a class="el" href="structbpt__visitor__t.html#a98e92b191465f291b08c58342ed21991" title="do not use this function. ">bpt_visitor_t::_for_all_bpts()</a> <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbpt__location__t.html">bpt_location_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a breakpoint location.  <a href="structbpt__location__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbpt__t.html">bpt_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Characteristics of a breakpoint.  <a href="structbpt__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmovbpt__info__t.html">movbpt_info_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbpt__visitor__t.html">bpt_visitor_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visit all breakpoints.  <a href="structbpt__visitor__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga7b7aec8527b2738750b2fc01be14264f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b7aec8527b2738750b2fc01be14264f"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="structbpt__t.html">bpt_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga7b7aec8527b2738750b2fc01be14264f">bpt_vec_t</a></td></tr>
<tr class="memdesc:ga7b7aec8527b2738750b2fc01be14264f"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of breakpoints <br /></td></tr>
<tr class="separator:ga7b7aec8527b2738750b2fc01be14264f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e0b820e079d99dca03f236ea5be387e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3e0b820e079d99dca03f236ea5be387e"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; movbpt_code_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>movbpt_codes_t</b></td></tr>
<tr class="separator:ga3e0b820e079d99dca03f236ea5be387e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78f5193f37ff593e550adc735ac116dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78f5193f37ff593e550adc735ac116dd"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="structmovbpt__info__t.html">movbpt_info_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>movbpt_infos_t</b></td></tr>
<tr class="separator:ga78f5193f37ff593e550adc735ac116dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaf5c25ba86cdf45fc0a619a356e20ff3e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#gaf5c25ba86cdf45fc0a619a356e20ff3e">bpt_loctype_t</a> { <a class="el" href="group__dbg__funcs__bpts.html#ggaf5c25ba86cdf45fc0a619a356e20ff3ea4e1bd678d3247c82b0c2b4447766457b">BPLT_ABS</a>, 
<a class="el" href="group__dbg__funcs__bpts.html#ggaf5c25ba86cdf45fc0a619a356e20ff3ea144f1e5d0dd732458bd97931adf55d0e">BPLT_REL</a>, 
<a class="el" href="group__dbg__funcs__bpts.html#ggaf5c25ba86cdf45fc0a619a356e20ff3ea88d90a791ba0e184db4824151ef2acfd">BPLT_SYM</a>, 
<a class="el" href="group__dbg__funcs__bpts.html#ggaf5c25ba86cdf45fc0a619a356e20ff3ea698e1dfca593bbdd7d74769de204f2d6">BPLT_SRC</a>
 }</td></tr>
<tr class="memdesc:gaf5c25ba86cdf45fc0a619a356e20ff3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Breakpoint location types.  <a href="group__dbg__funcs__bpts.html#gaf5c25ba86cdf45fc0a619a356e20ff3e">More...</a><br /></td></tr>
<tr class="separator:gaf5c25ba86cdf45fc0a619a356e20ff3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3afa4e1ad8da8809719c5830702d2b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf3afa4e1ad8da8809719c5830702d2b3"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>movbpt_code_t</b> { <b>MOVBPT_OK</b>, 
<b>MOVBPT_NOT_FOUND</b>, 
<b>MOVBPT_DEST_BUSY</b>, 
<b>MOVBPT_BAD_TYPE</b>
 }</td></tr>
<tr class="separator:gaf3afa4e1ad8da8809719c5830702d2b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga99062fc844ef6d441e64b7f5bf14e460"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga99062fc844ef6d441e64b7f5bf14e460"></a>
int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga99062fc844ef6d441e64b7f5bf14e460">set_bptloc_string</a> (const char *s)</td></tr>
<tr class="memdesc:ga99062fc844ef6d441e64b7f5bf14e460"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function for <a class="el" href="structbpt__location__t.html" title="Describes a breakpoint location. ">bpt_location_t</a>. <br /></td></tr>
<tr class="separator:ga99062fc844ef6d441e64b7f5bf14e460"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga397042e736205e290cc1b00d0b4177e3"><td class="memItemLeft" align="right" valign="top">const char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga397042e736205e290cc1b00d0b4177e3">get_bptloc_string</a> (int i)</td></tr>
<tr class="memdesc:ga397042e736205e290cc1b00d0b4177e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function for <a class="el" href="structbpt__location__t.html" title="Describes a breakpoint location. ">bpt_location_t</a>.  <a href="#ga397042e736205e290cc1b00d0b4177e3">More...</a><br /></td></tr>
<tr class="separator:ga397042e736205e290cc1b00d0b4177e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9cce72aa8f310ddc84ac1f678f59e8c6"><td class="memItemLeft" align="right" valign="top">int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga9cce72aa8f310ddc84ac1f678f59e8c6">get_bpt_qty</a> (void)</td></tr>
<tr class="memdesc:ga9cce72aa8f310ddc84ac1f678f59e8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of breakpoints.  <a href="#ga9cce72aa8f310ddc84ac1f678f59e8c6">More...</a><br /></td></tr>
<tr class="separator:ga9cce72aa8f310ddc84ac1f678f59e8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa189e80e83c431b512ab1f73e41ef522"><td class="memItemLeft" align="right" valign="top">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#gaa189e80e83c431b512ab1f73e41ef522">getn_bpt</a> (int n, <a class="el" href="structbpt__t.html">bpt_t</a> *bpt)</td></tr>
<tr class="memdesc:gaa189e80e83c431b512ab1f73e41ef522"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the characteristics of a breakpoint.  <a href="#gaa189e80e83c431b512ab1f73e41ef522">More...</a><br /></td></tr>
<tr class="separator:gaa189e80e83c431b512ab1f73e41ef522"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga706120f76ce8ee5f57bc4aa633d3d360"><td class="memItemLeft" align="right" valign="top">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga706120f76ce8ee5f57bc4aa633d3d360">get_bpt</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, <a class="el" href="structbpt__t.html">bpt_t</a> *bpt)</td></tr>
<tr class="memdesc:ga706120f76ce8ee5f57bc4aa633d3d360"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the characteristics of a breakpoint.  <a href="#ga706120f76ce8ee5f57bc4aa633d3d360">More...</a><br /></td></tr>
<tr class="separator:ga706120f76ce8ee5f57bc4aa633d3d360"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e38ac423c6f847ad52a71a4dad47d17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3e38ac423c6f847ad52a71a4dad47d17"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga3e38ac423c6f847ad52a71a4dad47d17">exist_bpt</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:ga3e38ac423c6f847ad52a71a4dad47d17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does a breakpoint exist at the given location? <br /></td></tr>
<tr class="separator:ga3e38ac423c6f847ad52a71a4dad47d17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga248ebc5026f40f2fc8e1c1c4b8cc6426"><td class="memItemLeft" align="right" valign="top">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga248ebc5026f40f2fc8e1c1c4b8cc6426">add_bpt</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> size=0, <a class="el" href="idd_8hpp.html#a773a43fff5c9bacc9f28d203baec542d">bpttype_t</a> type=<a class="el" href="group___b_p_t___h.html#ga53a732ad6558824e26a608a40c52d057">BPT_DEFAULT</a>)</td></tr>
<tr class="memdesc:ga248ebc5026f40f2fc8e1c1c4b8cc6426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new breakpoint in the debugged process.  <a href="#ga248ebc5026f40f2fc8e1c1c4b8cc6426">More...</a><br /></td></tr>
<tr class="separator:ga248ebc5026f40f2fc8e1c1c4b8cc6426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee7a8015012001a8037131d45aae1bc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaee7a8015012001a8037131d45aae1bc8"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#gaee7a8015012001a8037131d45aae1bc8">request_add_bpt</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> size=0, <a class="el" href="idd_8hpp.html#a773a43fff5c9bacc9f28d203baec542d">bpttype_t</a> type=<a class="el" href="group___b_p_t___h.html#ga53a732ad6558824e26a608a40c52d057">BPT_DEFAULT</a>)</td></tr>
<tr class="memdesc:gaee7a8015012001a8037131d45aae1bc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Post an <a class="el" href="group__dbg__funcs__bpts.html#ga248ebc5026f40f2fc8e1c1c4b8cc6426" title="Add a new breakpoint in the debugged process. ">add_bpt(ea_t, asize_t, bpttype_t)</a> request. <br /></td></tr>
<tr class="separator:gaee7a8015012001a8037131d45aae1bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ad027dcebb15e17cc031c82a1293eff"><td class="memItemLeft" align="right" valign="top">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga4ad027dcebb15e17cc031c82a1293eff">add_bpt</a> (const <a class="el" href="structbpt__t.html">bpt_t</a> &amp;bpt)</td></tr>
<tr class="memdesc:ga4ad027dcebb15e17cc031c82a1293eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new breakpoint in the debugged process.  <a href="#ga4ad027dcebb15e17cc031c82a1293eff">More...</a><br /></td></tr>
<tr class="separator:ga4ad027dcebb15e17cc031c82a1293eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3708fc8db5fb299502881cf3a6abbb9d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3708fc8db5fb299502881cf3a6abbb9d"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga3708fc8db5fb299502881cf3a6abbb9d">request_add_bpt</a> (const <a class="el" href="structbpt__t.html">bpt_t</a> &amp;bpt)</td></tr>
<tr class="memdesc:ga3708fc8db5fb299502881cf3a6abbb9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Post an <a class="el" href="group__dbg__funcs__bpts.html#ga4ad027dcebb15e17cc031c82a1293eff" title="Add a new breakpoint in the debugged process. ">add_bpt(const bpt_t &amp;)</a> request. <br /></td></tr>
<tr class="separator:ga3708fc8db5fb299502881cf3a6abbb9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga34ed03f5dfe91f7b20a7ea9ff28a0aa7"><td class="memItemLeft" align="right" valign="top">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga34ed03f5dfe91f7b20a7ea9ff28a0aa7">del_bpt</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:ga34ed03f5dfe91f7b20a7ea9ff28a0aa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete an existing breakpoint in the debugged process.  <a href="#ga34ed03f5dfe91f7b20a7ea9ff28a0aa7">More...</a><br /></td></tr>
<tr class="separator:ga34ed03f5dfe91f7b20a7ea9ff28a0aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga011d3cdb4726baacfee578de17714124"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga011d3cdb4726baacfee578de17714124"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga011d3cdb4726baacfee578de17714124">request_del_bpt</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:ga011d3cdb4726baacfee578de17714124"><td class="mdescLeft">&#160;</td><td class="mdescRight">Post a <a class="el" href="group__dbg__funcs__bpts.html#ga34ed03f5dfe91f7b20a7ea9ff28a0aa7" title="Delete an existing breakpoint in the debugged process. ">del_bpt(ea_t)</a> request. <br /></td></tr>
<tr class="separator:ga011d3cdb4726baacfee578de17714124"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75f3f5ae9d5fb9a67ac1513a3e9223b3"><td class="memItemLeft" align="right" valign="top">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga75f3f5ae9d5fb9a67ac1513a3e9223b3">del_bpt</a> (const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;bptloc)</td></tr>
<tr class="memdesc:ga75f3f5ae9d5fb9a67ac1513a3e9223b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete an existing breakpoint in the debugged process.  <a href="#ga75f3f5ae9d5fb9a67ac1513a3e9223b3">More...</a><br /></td></tr>
<tr class="separator:ga75f3f5ae9d5fb9a67ac1513a3e9223b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab203dfea08ec4cf1d71f8de497d2ae46"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab203dfea08ec4cf1d71f8de497d2ae46"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#gab203dfea08ec4cf1d71f8de497d2ae46">request_del_bpt</a> (const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;bptloc)</td></tr>
<tr class="memdesc:gab203dfea08ec4cf1d71f8de497d2ae46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Post a <a class="el" href="group__dbg__funcs__bpts.html#ga75f3f5ae9d5fb9a67ac1513a3e9223b3" title="Delete an existing breakpoint in the debugged process. ">del_bpt(const bpt_location_t &amp;)</a> request. <br /></td></tr>
<tr class="separator:gab203dfea08ec4cf1d71f8de497d2ae46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf0083e494d7844f4d4c898ac5ce69c3"><td class="memItemLeft" align="right" valign="top">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#gaaf0083e494d7844f4d4c898ac5ce69c3">update_bpt</a> (const <a class="el" href="structbpt__t.html">bpt_t</a> *bpt)</td></tr>
<tr class="memdesc:gaaf0083e494d7844f4d4c898ac5ce69c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update modifiable characteristics of an existing breakpoint.  <a href="#gaaf0083e494d7844f4d4c898ac5ce69c3">More...</a><br /></td></tr>
<tr class="separator:gaaf0083e494d7844f4d4c898ac5ce69c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabaab17953966f905fbda3c95b552022f"><td class="memItemLeft" align="right" valign="top">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#gabaab17953966f905fbda3c95b552022f">find_bpt</a> (const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;bptloc, <a class="el" href="structbpt__t.html">bpt_t</a> *bpt)</td></tr>
<tr class="memdesc:gabaab17953966f905fbda3c95b552022f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a breakpoint by location.  <a href="#gabaab17953966f905fbda3c95b552022f">More...</a><br /></td></tr>
<tr class="separator:gabaab17953966f905fbda3c95b552022f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa26e9240589279fac96941b7d068602d"><td class="memItemLeft" align="right" valign="top">int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#gaa26e9240589279fac96941b7d068602d">change_bptlocs</a> (const <a class="el" href="classqvector.html">movbpt_infos_t</a> &amp;movinfo, <a class="el" href="classqvector.html">movbpt_codes_t</a> *codes=NULL, bool del_hindering_bpts=true)</td></tr>
<tr class="memdesc:gaa26e9240589279fac96941b7d068602d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move breakpoint(s) from one location to another.  <a href="#gaa26e9240589279fac96941b7d068602d">More...</a><br /></td></tr>
<tr class="separator:gaa26e9240589279fac96941b7d068602d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga202cfe07a3d9d3afe387aa637721e83a"><td class="memItemLeft" align="right" valign="top">int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dbg__funcs__bpts.html#ga202cfe07a3d9d3afe387aa637721e83a">check_bpt</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:ga202cfe07a3d9d3afe387aa637721e83a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the breakpoint at the specified address.  <a href="#ga202cfe07a3d9d3afe387aa637721e83a">More...</a><br /></td></tr>
<tr class="separator:ga202cfe07a3d9d3afe387aa637721e83a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
enable/disable breakpoints</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp24e4aec433b321b5283b8db2d9d663ce"></a></p><table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function - available as request </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<p>Enable or disable an existing breakpoint. A disabled breakpoint isn't available anymore in the process. </p>
</td></tr>
<tr class="memitem:ga3ebdde0a02186ee4d5a8d3c445e2d266"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ebdde0a02186ee4d5a8d3c445e2d266"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>enable_bpt</b> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, bool enable=true)</td></tr>
<tr class="separator:ga3ebdde0a02186ee4d5a8d3c445e2d266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2e2644ffcda8b622a2585d88d8359bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad2e2644ffcda8b622a2585d88d8359bb"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>enable_bpt</b> (const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;bptloc, bool enable=true)</td></tr>
<tr class="separator:gad2e2644ffcda8b622a2585d88d8359bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5096ed75a44d948e849d83147afa70f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5096ed75a44d948e849d83147afa70f4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>disable_bpt</b> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="separator:ga5096ed75a44d948e849d83147afa70f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab02cf82afae5c1b88b0f2f682553138c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab02cf82afae5c1b88b0f2f682553138c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>disable_bpt</b> (const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;bptloc)</td></tr>
<tr class="separator:gab02cf82afae5c1b88b0f2f682553138c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9a48662b585150716161cc9855296b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf9a48662b585150716161cc9855296b2"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>request_enable_bpt</b> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, bool enable=true)</td></tr>
<tr class="separator:gaf9a48662b585150716161cc9855296b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c1150235a9e71f3bb38d5897769e232"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2c1150235a9e71f3bb38d5897769e232"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>request_enable_bpt</b> (const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;bptloc, bool enable=true)</td></tr>
<tr class="separator:ga2c1150235a9e71f3bb38d5897769e232"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9875c2bdc0613502aa2a6897946687f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9875c2bdc0613502aa2a6897946687f1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>request_disable_bpt</b> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="separator:ga9875c2bdc0613502aa2a6897946687f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3dd48e9bb0ec7d18c3e94f607beedbc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab3dd48e9bb0ec7d18c3e94f607beedbc"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>request_disable_bpt</b> (const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;bptloc)</td></tr>
<tr class="separator:gab3dd48e9bb0ec7d18c3e94f607beedbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gaf5c25ba86cdf45fc0a619a356e20ff3e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__dbg__funcs__bpts.html#gaf5c25ba86cdf45fc0a619a356e20ff3e">bpt_loctype_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Breakpoint location types. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggaf5c25ba86cdf45fc0a619a356e20ff3ea4e1bd678d3247c82b0c2b4447766457b"></a>BPLT_ABS&#160;</td><td class="fielddoc">
<p>absolute address: ea </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaf5c25ba86cdf45fc0a619a356e20ff3ea144f1e5d0dd732458bd97931adf55d0e"></a>BPLT_REL&#160;</td><td class="fielddoc">
<p>relative address: module_path, offset </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaf5c25ba86cdf45fc0a619a356e20ff3ea88d90a791ba0e184db4824151ef2acfd"></a>BPLT_SYM&#160;</td><td class="fielddoc">
<p>symbolic: symbol_name, offset </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaf5c25ba86cdf45fc0a619a356e20ff3ea698e1dfca593bbdd7d74769de204f2d6"></a>BPLT_SRC&#160;</td><td class="fielddoc">
<p>source level: filename, lineno </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga397042e736205e290cc1b00d0b4177e3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> get_bptloc_string </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Helper function for <a class="el" href="structbpt__location__t.html" title="Describes a breakpoint location. ">bpt_location_t</a>. </p>

</div>
</div>
<a class="anchor" id="ga9cce72aa8f310ddc84ac1f678f59e8c6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> get_bpt_qty </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get number of breakpoints. </p>
<table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>

</div>
</div>
<a class="anchor" id="gaa189e80e83c431b512ab1f73e41ef522"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> getn_bpt </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structbpt__t.html">bpt_t</a> *&#160;</td>
          <td class="paramname"><em>bpt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the characteristics of a breakpoint. </p>
<table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">n</td><td>number of breakpoint, is in range 0..<a class="el" href="group__dbg__funcs__bpts.html#ga9cce72aa8f310ddc84ac1f678f59e8c6" title="Get number of breakpoints. ">get_bpt_qty()</a>-1 </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">bpt</td><td>filled with the characteristics. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if no breakpoint exists </dd></dl>

</div>
</div>
<a class="anchor" id="ga706120f76ce8ee5f57bc4aa633d3d360"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> get_bpt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structbpt__t.html">bpt_t</a> *&#160;</td>
          <td class="paramname"><em>bpt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the characteristics of a breakpoint. </p>
<table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">ea</td><td>any address in the breakpoint range </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">bpt</td><td>if not NULL, is filled with the characteristics. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if no breakpoint exists </dd></dl>

</div>
</div>
<a class="anchor" id="ga248ebc5026f40f2fc8e1c1c4b8cc6426"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> add_bpt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a>&#160;</td>
          <td class="paramname"><em>size</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="idd_8hpp.html#a773a43fff5c9bacc9f28d203baec542d">bpttype_t</a>&#160;</td>
          <td class="paramname"><em>type</em> = <code><a class="el" href="group___b_p_t___h.html#ga53a732ad6558824e26a608a40c52d057">BPT_DEFAULT</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a new breakpoint in the debugged process. </p>
<table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function - available as request </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<dl class="section note"><dt>Note</dt><dd>Only one breakpoint can exist at a given address. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the process memory space. Depending on the architecture, hardware breakpoints always be setup at random address. For example, on x86, hardware breakpoints should be aligned depending on their size. Moreover, on the x86 architecture, it is impossible to setup more than 4 hardware breakpoints. </td></tr>
    <tr><td class="paramname">size</td><td>size of the breakpoint (irrelevant for software breakpoints): As for the address, hardware breakpoints can't always be setup with random size. </td></tr>
    <tr><td class="paramname">type</td><td>type of the breakpoint (<a class="el" href="group___b_p_t___h.html#ga002cf1299d50d3fb9b520e5f91a19b83" title="Software breakpoint. ">BPT_SOFT</a> for software breakpoint) special case <a class="el" href="group___b_p_t___h.html#ga53a732ad6558824e26a608a40c52d057" title="Choose bpt type automatically. ">BPT_DEFAULT</a> (<a class="el" href="group___b_p_t___h.html#ga002cf1299d50d3fb9b520e5f91a19b83" title="Software breakpoint. ">BPT_SOFT</a>|<a class="el" href="group___b_p_t___h.html#gab08ccc411ade99a94afc7059d11280ab" title="Execute instruction. ">BPT_EXEC</a>): try to add instruction breakpoint of the appropriate type as follows: software bpt if supported, hwbpt otherwise </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga4ad027dcebb15e17cc031c82a1293eff"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> add_bpt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structbpt__t.html">bpt_t</a> &amp;&#160;</td>
          <td class="paramname"><em>bpt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a new breakpoint in the debugged process. </p>
<table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function - available as request </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bpt</td><td>Breakpoint to add. It describes the break condition, type, flags, location (module relative, source breakpoint or absolute) and other attributes. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga34ed03f5dfe91f7b20a7ea9ff28a0aa7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> del_bpt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Delete an existing breakpoint in the debugged process. </p>
<table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function - available as request </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the breakpoint range </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga75f3f5ae9d5fb9a67ac1513a3e9223b3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> del_bpt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;&#160;</td>
          <td class="paramname"><em>bptloc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Delete an existing breakpoint in the debugged process. </p>
<table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function - available as request </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bptloc</td><td>Breakpoint location </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaaf0083e494d7844f4d4c898ac5ce69c3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> update_bpt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structbpt__t.html">bpt_t</a> *&#160;</td>
          <td class="paramname"><em>bpt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update modifiable characteristics of an existing breakpoint. </p>
<p>To update the breakpoint location, use <a class="el" href="group__dbg__funcs__bpts.html#gaa26e9240589279fac96941b7d068602d" title="Move breakpoint(s) from one location to another. ">change_bptlocs()</a> </p><table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<dl class="section note"><dt>Note</dt><dd>Only the following fields can be modified:<ul>
<li><a class="el" href="structbpt__t.html#aa350cca6d588bb08bcc4d724b43e83b4" title="Condition as entered by the user. ">bpt_t::cndbody</a></li>
<li><a class="el" href="structbpt__t.html#a5be8cb9d4acc244b64afbdea5b8297a8" title="Number of times the breakpoint is hit before stopping (default is 0: stop always) ...">bpt_t::pass_count</a></li>
<li><a class="el" href="structbpt__t.html#abc14bb9f84e91c2f02acd4cbb801d23d" title="Breakpoint property bits ">bpt_t::flags</a></li>
<li><a class="el" href="structbpt__t.html#a7e9e4eccca1699181f17c4cbc7371b4c" title="Size of the breakpoint (0 for software breakpoints) ">bpt_t::size</a></li>
<li><a class="el" href="structbpt__t.html#aec6d504acf8e2217fb4bdfe6061cab37" title="Breakpoint type. ">bpt_t::type</a> </li>
</ul>
</dd>
<dd>
Changing some properties will require removing and then re-adding the breakpoint to the process memory (or the debugger backend), which can lead to race conditions (i.e., breakpoint(s) can be missed) in case the process is not suspended. Here are a list of scenarios that will require the breakpoint to be removed &amp; then re-added:<ul>
<li><a class="el" href="structbpt__t.html#a7e9e4eccca1699181f17c4cbc7371b4c" title="Size of the breakpoint (0 for software breakpoints) ">bpt_t::size</a> is modified</li>
<li><a class="el" href="structbpt__t.html#aec6d504acf8e2217fb4bdfe6061cab37" title="Breakpoint type. ">bpt_t::type</a> is modified</li>
<li><a class="el" href="structbpt__t.html#abc14bb9f84e91c2f02acd4cbb801d23d" title="Breakpoint property bits ">bpt_t::flags</a>'s BPT_ENABLED is modified</li>
<li><a class="el" href="structbpt__t.html#abc14bb9f84e91c2f02acd4cbb801d23d" title="Breakpoint property bits ">bpt_t::flags</a>'s BPT_LOWCND is changed</li>
<li><a class="el" href="structbpt__t.html#abc14bb9f84e91c2f02acd4cbb801d23d" title="Breakpoint property bits ">bpt_t::flags</a>'s BPT_LOWCND remains set, but cndbody changed </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="gabaab17953966f905fbda3c95b552022f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> find_bpt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structbpt__location__t.html">bpt_location_t</a> &amp;&#160;</td>
          <td class="paramname"><em>bptloc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structbpt__t.html">bpt_t</a> *&#160;</td>
          <td class="paramname"><em>bpt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Find a breakpoint by location. </p>
<table class="doxtable">
<tr>
<td>Type</td><td>Synchronous function - available as request </td></tr>
<tr>
<td>Notification</td><td>none (synchronous function) </td></tr>
</table>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bptloc</td><td>Breakpoint location </td></tr>
    <tr><td class="paramname">bpt</td><td>bpt is filled if the breakpoint was found </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa26e9240589279fac96941b7d068602d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> change_bptlocs </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classqvector.html">movbpt_infos_t</a> &amp;&#160;</td>
          <td class="paramname"><em>movinfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classqvector.html">movbpt_codes_t</a> *&#160;</td>
          <td class="paramname"><em>codes</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>del_hindering_bpts</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Move breakpoint(s) from one location to another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">movinfo</td><td>what bpts to move and where to </td></tr>
    <tr><td class="paramname">codes</td><td>vector of return codes, if detailed error info is required </td></tr>
    <tr><td class="paramname">del_hindering_bpts</td><td>should delete hindering breakpoints? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of moved bpts </dd></dl>

</div>
</div>
<a class="anchor" id="ga202cfe07a3d9d3afe387aa637721e83a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> check_bpt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check the breakpoint at the specified address. </p>
<dl class="section return"><dt>Returns</dt><dd>one of <a class="el" href="group___b_p_t_c_k__.html">Breakpoint status codes</a> </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
